Roberto Sánchez
2023-10-17
Árbol de ~ 80.000 especies de bacterias
A partir de él, crea una taxonomía de 7 niveles
Representar árboles grandes es complicado.
Incluso un subconjunto pequeño del árbol es confuso.
Ej: Mycobacteriales, 1827 hojas
Agrupar el árbol por taxones
Añadir anotaciones interactivas
gtdb_tree |>
subset_tree_to_taxon("order", "Mycobacteriales") |>
ggtree() |>
scale_tree_to_level("family")tree_myco <- gtdb_tree |>
subset_tree_to_taxon("order", "Mycobacteriales") |>
ggtree() |>
scale_tree_to_level("family") |>
collapse_tree_to_level("family")
tree_mycoLa claridad aumenta mucho, pero la pérdida de información es mínima
Por ejemplo, el tamaño del genoma, obtenido de GTDB
box_myco <- plot_stat_boxplot(tree_myco, level = "family")
myco <- plot_tree_and_boxplots(tree_myco, box_myco)
mycoAsí puedo agrupar el árbol por taxones
tree_interactive <- gtdb_tree |>
subset_tree_to_taxon("order", "Mycobacteriales") |>
ggtree() |>
scale_tree_to_level("family") |>
annotate_taxon_nodes("family") |>
collapse_tree_to_level("family") |>
add_bootstraps() |>
add_tips()
boxplot_interactive <- plot_stat_boxplot(
tree_interactive,
stat = "gc_percentage",
level = "family",
show_quartiles = TRUE
)
myco_interactive <- girafe(
ggobj = plot_tree_and_boxplots(
tree_interactive,
boxplot_interactive)
)Este gráfico me resulta muy fácil de explorar:
Observaciones
Diferencia entre las familias QHC01 y Criptosporangiaceae
Distribución en Mycobacteriaceae
tree_interactive <- gtdb_tree |>
subset_tree_to_taxon("family", "Mycobacteriaceae") |>
ggtree() |>
scale_tree_to_level("genus") |>
annotate_taxon_nodes("genus") |>
collapse_tree_to_level("genus")
boxplot_interactive <- plot_stat_boxplot(
tree_interactive,
stat = "gc_percentage",
level = "genus",
show_datapoints = TRUE # Añado la nube de puntos
)
myco_interactive_2 <- girafe(
ggobj = plot_tree_and_boxplots(
tree_interactive,
boxplot_interactive)
)Más anotaciones, añadir la opción de representar un taxón “intermedio” en el árbol con colores, o marcos
Utilizar color, o tamaño de la nube de puntos para representar otra variable numérica
Reescribir el proyecto creando clases.
Navegación interactiva por el árbol
Integrar con otra base de datos.
Minar los genomas con una pipeline existente
Presentar el proyecto como un “atlas”